Often it is desired that a program compile correctly under two or more different circumstances. In such cases, it is convenient to write a single collection of source and header files, using preprocessor directives to ensure correct compilation for the respective circumstances. The syntax:
# define NAME /* no replacement text given */
is used to "define" a name for use with the CONDITIONAL COMPILATION directives:
# ifdef NAME
.
.
# else
.
.
# endif
If NAME has been "defined" before the #ifdef directive is encountered, then the